package cn.edu.gzgs.mapper;

import cn.edu.gzgs.entity.RoleMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set; // 使用 Set 来确保 menu_key 不重复

@Mapper
public interface RoleMenuMapper extends BaseMapper<RoleMenu> {

    /**
     * 根据角色ID集合，查询对应的角色类型（type字段）
     * 此方法为自定义查询，仍需保留。
     * @param roleIds 角色ID列表
     * @return 角色类型集合（如100，200等）
     */
    //  实际的SQL可能在XML中，或者如果简单，也可以用@Select注解。
    //  例如: @Select("<script>SELECT DISTINCT r.type FROM role r JOIN role_menu rm ON r.id = rm.role_id WHERE rm.role_id IN <foreach item='item' collection='roleIds' open='(' separator=',' close=')'>#{item}</foreach></script>")
    Set<Integer> findRoleTypesByRoleIds(@Param("roleIds") List<String> roleIds);

    /**
     * 根据角色ID列表查询对应的所有菜单ID（去重）
     * @param roleIds 角色ID列表
     * @return 菜单ID集合
     */
    Set<Long> findMenuIdsByRoleIds(@Param("roleIds") List<String> roleIds);

} 